webapp2公式ドキュメントを読み解く会(6回目)
2013年07月05日
webapp2の公式ドキュメントを読む会もとうとう6回目になりました。
今回で、やっとURL routingが終了です。
何度も同じ記述を避けるための記載方法です。
リクエストをグループ化して定義する事ができるようになります。
app = WSGIApplication([
Route('/users/<user:\w+>/', UserOverviewHandler, 'user-overview'),
Route('/users/<user:\w+>/profile', UserProfileHandler, 'user-profile'),
Route('/users/<user:\w+>/projects', UserProjectsHandler, 'user-projects'),
])
import webapp2
from webapp2_extras import routes
app = WSGIApplication([
routes.PathPrefixRoute('/users/<user:\w+>', [
webapp2.Route('/', UserOverviewHandler, 'user-overview'),
webapp2.Route('/profile', UserProfileHandler, 'user-profile'),
webapp2.Route('/projects', UserProjectsHandler, 'user-projects'),
]),
])
PathPrefixRouteは、記載の仕方だけでなく、処理効率も上がるそうです。
通常は、定義されたRouteを順番にマッチングしながら処理を行うのですが、PathPrefixRouteに一致しなかった場合は、全てスキップするため無駄なマッチングをせずに済むようです。